# install.packages("censobr")
library(tidyverse)
library(censobr)
library(geobr)
library(plotly)Dados do Censo Brasileiro
Tutorial Transformação Digital nº 6
Neste tutorial, exploramos o pacote censobr que permite o acesso a dados do Censo diretamente no R.
Contato: transformacao.digital@fjp.mg.gov.br
1 Introdução
O pacote censobr no R é uma ferramenta para acessar e analisar dados do Censo brasileiro. Este tutorial irá guiá-lo através das funcionalidades básicas de extração dos dados.
1.1 Configuração Inicial
Para começar, instale e carregue os pacotes necessários no RStudio
1.2 Explorando o Pacote censobr
censobr é um pacote do R para baixar dados do Censo Populacional do Brasil. Ele é construído sobre a plataforma Arrow, permitindo trabalhar com dados do censo maiores que a memória utilizando funções familiares do dplyr.
O pacote atualmente inclui 6 funções principais para baixar e ler dados do censo:
Além das funções de auxílio para as bases de dados:
Obs.: O pacote ainda está em desenvolvimento e foi construído pelo IPEA, dados mais atualizados são adiconados periodicamente (Pereira e Barbosa 2023).
1.3 Exemplos Práticos
Vamos começar com um exemplo simples de informação sobre renda per capta de Belo Horizonte. A função read_tracts() que permite coletar variáveis especificas.
Com a função data_dictionary é possível recolher as informações das variáveis.
Para auxiliar nas vizualizações vamos utilizar o pacote geobr
1. Carregamento dos Dados dos Municípios: Carregue os dados do município de Belo Horizonte para o ano de 2010:
muni_bh <- geobr::read_municipality(code_muni = 'MG',
year = 2010,
showProgress = FALSE) |>
filter(name_muni == "Belo Horizonte")Using year 2010
read_municipalityobtém dados dos municípios de Minas Gerais.O filtro seleciona apenas Belo Horizonte.
2. Carregamento dos Dados dos Setores Censitários: Agora, carregue os dados detalhados dos setores censitários:
tracts_sf <- geobr::read_census_tract(code_tract = "MG",
simplified = FALSE,
year = 2010,
showProgress = FALSE)Using year 2010
tracts_sf <- filter(tracts_sf, name_muni == "Belo Horizonte")read_census_tractcarrega dados dos setores censitários.simplified = FALSEmantém todos os detalhes geográficos.
- Visualização dos Dados: Crie um mapa dos setores censitários:
ggplot() +
geom_sf(data=tracts_sf, fill = 'gray90', color='gray60') +
theme_void()
ggplot()inicia a criação do gráfico.geom_sfadiciona os setores censitários ao gráfico.fillecolordefinem as cores das áreas e bordas.theme_void()remove elementos desnecessários para focar no mapa.
2 Calcuando Renda Per Capta
2.1 Download dos Dados dos Setores Censitários:
- Download dos Dados dos Setores Censitários:
read_tracts(year = 2010, dataset = "Basico", showProgress = FALSE)carrega dados básicos dos setores censitários para 2010.read_tracts(year = 2010, dataset = "DomicilioRenda", showProgress = FALSE)carrega dados de renda dos domicílios dos setores censitários para 2010.showProgress = FALSEdesativa a exibição de progresso.
tract_basico <- read_tracts(year = 2010,
dataset = "Basico",
showProgress = FALSE)Reading data cached locally.
tract_income <- read_tracts(year = 2010,
dataset = "DomicilioRenda",
showProgress = FALSE)Reading data cached locally.
- Seleção das variáveis :
tract_basico |> select('code_tract','V002')seleciona as colunascode_tract(código do setor censitário) eV002(população do setor) do dataset básico.tract_income |> select('code_tract','V003')seleciona as colunascode_tracteV003(renda total do setor) do dataset de renda.
# select columns
tract_basico <- tract_basico |> select('code_tract','V002')
tract_income <- tract_income |> select('code_tract','V003')- Junção dos Dados:
left_join(tract_basico, tract_income)combina os dois datasets baseando-se nocode_tract.|> collect()é utilizado para coletar e consolidar os resultados da junção.
tracts_df <- left_join(tract_basico, tract_income) |> collect()Cálculo da Renda Per Capita:
mutate(income_pc = V003 / V002)adiciona uma nova colunaincome_pc, calculando a renda per capita do setor (renda total dividida pela população).
tracts_df <- tracts_df |> mutate(income_pc = V003 / V002)Junção com Dados Geográficos:
bh_tracts <- left_join(tracts_sf, tracts_df, by = 'code_tract')left_join(tracts_sf, tracts_df, by = 'code_tract')junta o dataframetracts_sf(dados geográficos dos setores censitários de Belo Horizonte) comtracts_df(dados socioeconômicos), baseando-se no código do setor censitário.
2.2 Criando um gráfico interativo
Este trecho de código em R cria um mapa interativo para visualizar a renda per capita por setor censitário em Belo Horizonte no ano de 2010. O código usa ggplot2 para criar o gráfico e plotly para torná-lo interativo. Vamos analisar cada componente:
- Criação do Gráfico Base:
ggplot()inicializa o gráfico.geom_sf(data = bh_tracts, aes(fill = income_pc), color=NA)adiciona os setores censitários de Belo Horizonte ao gráfico, com a cor das áreas determinada pela renda per capita (income_pc).geom_sf(data = muni_bh, color='gray10', fill=NA)desenha as fronteiras do município em uma cor escura (gray10) sem preenchimento interno.
p <- ggplot() +
geom_sf(data = bh_tracts, aes(fill = income_pc), color=NA) +
geom_sf(data = muni_bh, color='gray10', fill=NA) +
labs(subtitle = 'Renda per capita.\nBelo Horizonte, 2010') +
scale_fill_viridis_c(name = "Renda per\ncapita (R$)",
labels = scales::number_format(),
option = 'magma',
breaks = c(0, 500, 1e3, 5e3, 1e4, 2e4),
trans = "pseudo_log", na.value = "gray90") +
theme_void()
ggplotly(p)- Adição de Rótulos e Ajustes Visuais:
labs(subtitle = 'Renda per capita.\nBelo Horizonte, 2010')adiciona um subtítulo ao gráfico.scale_fill_viridis_c(...):- Aplica uma escala de cores ‘viridis’ (aqui, opção ‘magma’) para representar a renda per capita.
labels = scales::number_format()formata os números para melhor legibilidade.breaks = c(0, 500, 1e3, 5e3, 1e4, 2e4)define os pontos em que as cores mudarão no mapa.trans = "pseudo_log"aplica uma transformação logarítmica para escalonar os dados de renda.na.value = "gray90"define a cor para valores ausentes como um cinza claro.
theme_void()remove elementos desnecessários do gráfico, focando nos dados.
- Conversão para Gráfico Interativo:
ggplotly(p)transforma o gráficoggplotem um gráfico interativo usando a funçãoggplotlydo pacoteplotly. Isso permite que os usuários interajam com o gráfico, como passar o mouse sobre áreas específicas para ver detalhes adicionais.
2.3 Conclusão
Neste tutorial, você aprendeu a combinar dados socioeconômicos e geográficos para calcular e visualizar a renda per capita por setor censitário em Belo Horizonte, utilizando dados do censo de 2010. Através do pacote censobr no R. Com a visualização interativa fornecida pelo ggplot2 e plotly, você pode agora explorar os dados de uma maneira mais dinâmica e informativa.